Modern operating systems, such as 64-bit long mode (x64) Microsoft® Vista®, do not require any real-mode code flows. Real-mode refers to a 16-bit execution environment that operates the computer system in a limited 1 MB (megabyte) memory space. The last OS-visible 16-bit execution environments were 16-bit DOS (disk operating system) and WIN16. These old environments have been deprecated from x64 Vista. The firmware space is facing a similar migration. Modern firmware architectures like the Unified Extensible Firmware Interface (UEFI)-based BIOS, including constructions based upon the Platform Environment Initialization (PEI) and Driver Execution Environment (DXE) portions of the Platform Initialization (PI) Architecture, can run completely in 64-bit long-mode. In other words, the pre-OS environment, the environment that operates a computer before the machine is handed over to the OS, also no longer needs real-mode. 16-bit assemblers and compilers are becoming rare as well.
This software migration compares to the venerable x86 architecture, which still hands-off control to the machine from a restart in 16-bit real mode using the architecturally-required reset vector at the top of 32-bit memory space. x86 architecture also requires a startup inter-processor interrupt (IPI) to be located below 1 MB in memory with a 16-bit code entry point (startup IPI). Additionally, x86 architecture also delivers System Management Mode Interrupts (SMI) in 16-bit real mode, namely System management mode (SMM) entries. These 3 machine state transitions require real-mode execution, which require a significant amount of transistors in the processor to handle, and they also require a specific memory map (i.e. memory locations at less than 1 MB are still required because of startup IPI).